1. Field of the Invention
The present invention relates to HTTP request handling and, more particularly, to selectively delivering cached content or processed content to clients based upon a result completed percentage.
2. Description of the Related Art
It can be beneficial for a server to send a cached response as a substitute for a processed response. That is, a server can immediately convey a cached response to a client, so that the client does not have to wait for a processed response and so that server processing resources are conserved. Extensions to content caching technologies (e.g., stale-while-revalidate HTTP Cache-Control Extension and the Coral Content Distribution Network) exist that establish a time period for which cached content is valid. After this time period, a stale response can be sent while a processing server queries to determine if the request is valid and replaces the cached content as necessary. This extension has an explicit time limit and does not update the request that originally triggered the revalidation. Additionally, systems exist that establish a processing time-out period, where once the time-out period passes, cached content is provided in place of processed content.
Server-side systems are emerging that asynchronously process content for a single request context. These systems can use multiple servers to process the asynchronous request and can perform client-side content aggregation. For example, U.S. patent application Ser. No. 11/846,423, filed Aug. 28, 2007, disclosed a solution for client side aggregation of asynchronous context-sensitive request operations in a single application server environment. A concept of client-side content aggregation is extended by U.S. patent application Ser. No. 11/843,038 filed Aug. 22, 2007, which teaches client-side aggregation of context-sensitive request results where results are asynchronously handled by multiple servers. Additionally, U.S. patent application Ser. No. 11/851,092, filed Sep. 6, 2007 teaches a solution for sharing server generated response output to satisfy request for content originated by different clients that can be used in conjunction with the present inventive arrangements.
Conventional content caching techniques would have difficulty handling situations where there are many requests/results produced for a single request context, where each of the asynchronous requests would have different expected response times. Use of a single time-out rule for providing cached results instead of processed results would be inappropriate due to these differing expected response times. An expected solution to these difficulties would be to establish a complex cache configuration for a request context, where each asynchronous result has a characteristic response time-out threshold. Another expected solution would be to conglomerate many operations together and establish a single time-out for these conglomerated operations. Each of these solutions incurs overhead costs and has many inherent flaws. What is needed is a new technique for handling cached content.